<script>
    var arr = [1, 3, '吃饭', '睡觉', '睡觉', '写代码', ['苹果', '香蕉', ["潘子", "嘎子"], '菠萝']]
        // // arr.push('567')
        // // console.log(arr);
    function flatt(arr) { //接收一个数组作为参数
        var newArr = []; //这个空数组用于处理扁平化之后的数组的元素
        // arr = this;
        function fn(data) {
            //如果data是一个数组,那么就需要对data进行遍历
            for (var i = 0; i < data.length; i++) {
                var tem = data[i]; //使用tem储存每一个数组中的元素
                if (Array.isArray(tem)) {
                    //是一个数组
                    fn(tem)
                } else {
                    //不是一个数组
                    newArr.push(tem) //如果不是一个数组,那么就把每个元素都push到newArr这个数组中
                }
            }
        }
        fn(arr) //递归入口
            //将扁平化之后的数组返回
        return newArr
    }

    console.log(flatt(arr));
</script>
<!-- arr_flat = arr.flat(Infinity); -->